package com.finalcial.service;

import java.util.List;
import java.util.Map;

import com.finalcial.po.LoginMsg;
import com.finalcial.po.UserPersonalMsg;

/**
 * 登录界面
 * @author Administrator
 *
 */
public interface UserService {

	/**
	 * 登录界面
	 * @param userName 用户名
	 * @param password 用户密码
	 * @return
	 */
	public List<Map<String, Object>> getUserMsg(String userName, String password);
	
	/**
	 * 个人信息界面（非管理员）--信息显示
	 * @param userId 用户ID
	 * @return
	 */
	public List<Map<String, Object>> listgetEmployeeInformationByOrdinary(Integer userId);
	
	/**
	 * 个人信息界面--信息修改
	 * @param startPos 开始页码
	 * @param pageSize 页码大小
	 * @return
	 */
	public List<Map<String, Object>> listEmployeeInformation(Integer startPos,Integer pageSize);
	/**
	 * 非管理员-个人信息界面显示接口-参数：用户id-返回值：用户id、用户姓名、部门id、部门名、职级id、职级名、公司id、公司名、电话、银行号码
	 * @param userId 用户ID
	 * @return
	 */
	public UserPersonalMsg getEmployeeInformationByOrdinary(Integer userId);
	/**
	 * 个人用户界面--修改用户密码
	 * @param userId 用户ID
	 * @param password 用户密码
	 * @return
	 */
	public Integer updateUserInfoOne(Integer userId, String password);
	/**
	 * 查询用户总数量
	 */
	public Integer getUserCounts();
	/**
	 * 通过用户ID 删除用户
	 * @param userId 用户ID
	 * @return
	 */
	public Integer deleteEmployeeInformation(Integer userId);
	/**
	 * 管理员--通过用户ID修改用户信息
	 * @param userId 用户ID
	 * @param departmentId 部门ID
	 * @param userTypeId 用户类型
	 * @param companyId 公司ID
	 * @param phone 电话
	 * @param bankNumber 银行卡号
	 * @param bankName 用户类型
	 * @param password 密码
	 * @return
	 */
	public Integer updateEmployeeInformation(Integer userId, Integer departmentId, Integer userTypeId,
			Integer companyId, String phone, String bankNumber, String bankName, String password);
	/**
	 * 个人信息界面(管理员)--新增用户信息
	 * @param userName 用户名字
	 * @param departmentId	部门ID
	 * @param userTypeId 用户类型ID
	 * @param companyid 公司ID
	 * @param phone 电话
	 * @param bankNumber 银行卡号码
	 * @param bankName 银行卡名字
	 * @param password 密码
	 * @return
	 */
	public Integer insertEmployeeInformation(String userName, Integer departmentId, Integer userTypeId,
			Integer companyid, String phone, String bankNumber, String bankName, String password);
	/**
	 * 个人信息界面（管理员）---多条件查询用户信息
	 * @param userId 用户ID
	 * @param userName 用户名字
	 * @param departmentName 部门名字
	 * @param userTypeName 用户类型名
	 * @param companyName 公司名
	 * @return
	 */
	public List<Map<String, Object>> getEmployeeInformation(Integer userId, String userName, String departmentName, String userTypeName,
			String companyName);
	
	/**
	 * 存入session中的信息
	 * @param userName
	 * @param password
	 * @return
	 */
	public LoginMsg getLoginMsg(String userName, String password);
	
	/**
	 * 通过用户id,权限父节点查询用户的权限
	 * @param userId 用户ID
	 * @param parent 权限父节点ID
	 * @return
	 */
	public List<Map<String,Object>> getFunctionByUserId(String userId, String parent);
	
}
